Skip to main content

Getting object type by constructor name

When one with typeof operator one gets type object it falls into somewhat wast category...

In practice you might need to narrow it down to what sort of 'object' it actually is and one way to do it is to use object constructor name to get what flavour of object it actually is: Object.prototype.toString.call(yourObject)

1. String

Object.prototype.toString.call("String")

[object String]

2. Number

Object.prototype.toString.call(42)

[object Number]

3. Bool

Object.prototype.toString.call(true)

[object Boolean]

4. Object

Object.prototype.toString.call(Object()) or Object.prototype.toString.call({})

[object Object]

5. Function

Object.prototype.toString.call(function(){})

[object Function]

6. Date

Object.prototype.toString.call(new Date(2015,10,21))

[object Date]

7. Regex

Object.prototype.toString.call(new RegExp()) or Object.prototype.toString.call(/foo/);

[object RegExp]

8. Array

Object.prototype.toString.call([]);

[object Array]

9. Null

Object.prototype.toString.call(null);

[object Null]

10. Undefined

Object.prototype.toString.call(undefined);

[object Undefined]

11. Error

Object.prototype.toString.call(Error());

[object Error]